const A = {
  // 如果需要声明分模块的时候加上namespaced:true 用于区分模块,
  // 如果使用这种方式的话得使用 mapGetters的这种方式获取数据指定模块名,
  // 测试的时候打开namespaced 使用$this.store.getters方式获取不到state的值！！！
  namespaced: true,
  // state 用来数据共享数据存储,可以使对象数组等等.
  state: {
    count: 3,
    userName: ''
  },
  // 设置数据,用来注册改变state里的数据
  mutations: {
    add: state => {
      state.count++;
    },
    sub: state => {
      state.count--;
    },
    setName: (state, txt) => {
      state.userName = txt;
    }
  },
  //  actions 异步提交mutations去修改 state 的值
  //  action主要解决异步改变共享数据,例子2秒后执行sub方法。
  actions: {
    // 当然可以在这里写异步方法使用this.$store.dispatch('subClick', 参数) 来调用
    subClick({commit}) {
      setTimeout(() => {
        commit('sub')
      }, 1000)
    },
    getName({commit},name) {
      setTimeout(() => {
        commit('setName', name)
      }, 1000)
    }
  },
  // 通过getter获取数据。
  getters: {
    getCountA: state => state.count,
    getUserName: state => state.userName
  }
};

// 封装号数据导出
export default A

